package Renderer;
////////////////////////////////////////////////////////////////////////////////////////////////////
//
//LDrawCollector
//
////////////////////////////////////////////////////////////////////////////////////////////////////
//An LDraw collector accumulates meshes in a fixed coordinate system. A texture stack can be used
//to push/pop texture state; if no texture state is pushed, the mesh ends up capable of "taking current
//texture."
//
public interface ILDrawCollector {
// Texture stack - sets up new texturing. When the stack is totally popped,
// no texturing is applied.
void pushTexture(LDrawTextureSpec tex_spec);
void popTexture();
// Raw drawing APIs to push one quad/tri/line. Vertices are consecutive
// float verts, e.g. 12 for quad, 9 for tri, 6 for line/
// Color can be null to use the current color. Normal is a float[3] normal
// ptr.
void drawQuad(float[] vertices, float[] normal, float[] color);
void drawTri(float[] vertices, float[] normal, float[] color);
void drawLine(float[] vertices, float[] normal, float[] color);
}